Erste Schritte mit Airtable
Im heutigen Arbeitsumfeld müssen Manager manchmal mit einer Vielzahl von Tools umgehen, was die Produktivität verringert und das Fehlerrisiko beim Datentransfer von einem Tool zum anderen erhöht. Daher liegt es in ihrem Interesse, die richtige Kombination von Tools zu finden – für einen unkomplizierten und effizienten Prozess.
Deshalb erstellen wir in diesem Artikel einen komfortablen Workflow, mit dem Sie Dokumente automatisch aus Ihrer Airtable-Oberfläche heraus generieren können, ohne Daten zwischen Anwendungen übertragen zu müssen. Außerdem verwenden Sie eine Word-Vorlage, die einfach mit der Textverarbeitungssoftware bearbeitet werden kann, mit der Sie am besten vertraut sind.
Folgende Dienste werden für diesen Workflow benötigt:
-
Airtable: Eine No-Code-Kollaborationsplattform, die es Benutzern ermöglicht, einfach mit einer Datenbank zu interagieren – unter anderem mit einer tabellenähnlichen Oberfläche, Web-Formularen für die Eingabe und benutzerfreundlichen Berichten und Datenvisualisierungs-Schnittstellen für die Ausgabe.
-
DocuGenerate: Eine Web-App und API zur Generierung von Dokumenten aus Word-Vorlagen und JSON-Daten durch Ersetzen von Zusammenführungs-Tags in Vorlagen durch dynamische Daten.
Dieser Artikel richtet sich hauptsächlich an Personen mit minimalen Grundkenntnissen in den Basisfunktionen von Airtable. Wir werden nicht auf alle Funktionen eingehen und uns nur auf die Aspekte konzentrieren, die für die Einrichtung unseres Prozesses notwendig sind.
Verwendung von Airtables Page Designer
Sie könnten Airtables Page-Designer-Erweiterung verwenden, um eigene Vorlagen für Rechnungen, Visitenkarten, Kataloge und mehr zu erstellen – alles mit Daten direkt aus Ihren Datensätzen. Wenn alles schön gestaltet ist, können Sie Ihre Datensätze ausdrucken oder in PDFs umwandeln.

Für unseren Anwendungsfall gibt es jedoch einige Einschränkungen:
- Dateien werden einzeln generiert.
- Es können nur PDF-Dateien generiert werden.
- Generierte Dateien können nicht in der Airtable-Datenbank gespeichert werden.
Der Layout-Editor des Page Designers ist nicht schlecht, aber Sie werden nie so produktiv sein wie mit Ihrer gewohnten Textverarbeitungssoftware. Außerdem müssen Sie von vorne beginnen, wenn Sie ein neues Layout in einer anderen Basis erstellen möchten.
Die Word-Vorlage Erstellen
Angesichts der Einschränkungen des Page Designers verwenden wir stattdessen eine Word-Vorlage. Eine Vorlage ist ein Dokument, das Zusammenführungs-Tags enthält – Platzhalter, die durch dynamische Daten ersetzt werden sollen. Sie ermöglichen es Ihnen, Dokumente zu erstellen, die optisch sehr ähnlich sind, sich aber je nach Datensatz unterscheiden.
Unsere Vorlage ist eine leicht modifizierte Version der Abschlusszertifikat-Vorlage aus der Vorlagenbibliothek. Die wichtigsten Änderungen waren das Hinzufügen eines Profilfotos zur Darstellung unserer Bildgrößenanpassungs-Funktion und die Integration einer Kompetenzliste, um Airtables verknüpfte Datensatzfelder zusammen mit DocuGenerates Listensyntax zu demonstrieren.

Diese Vorlage enthält folgende Tags: {Company_Name}, {First_Name}, {Last_Name}, {Program}, {Photo}, {Start_Date}, {End_Date}, {Certificate_Date} und {Skills} (mit folgender Syntax für eine Kompetenzliste):
{#Skills}
- {.}
{/Skills}
💡 Weiterführend Die erweiterte Syntax ist für diese Vorlage aktiviert, um die Bildgrößenanpassung zu ermöglichen. Vermeiden Sie Leerzeichen in Tag-Namen, um sie nutzen zu können. Deshalb verwenden aus zwei Wörtern zusammengesetzte Tag-Namen einen Unterstrich zwischen ihnen.
Die Datenbank Gestalten
Für unser Beispiel haben wir zunächst die Vorlage erstellt und dann eine passende Datenbankstruktur angelegt. In der Praxis wird es natürlich umgekehrt sein: Da Ihre Daten wahrscheinlich bereits konsistent vorhanden sind, erstellen Sie eine Vorlage, die zu Ihren Daten und Ihrer Basisstruktur passt, um die benötigten Dokumente zu generieren – und nicht eine Datenbankstruktur nach Ihrer Vorlage.
Unsere Basis enthält drei Tabellen:
-
Skills enthält die in den verschiedenen Programmen erworbenen Kompetenzen, nach Kategorie geordnet.
-
Programs enthält Daten zu jedem Programm: Name, Start- und Enddatum sowie die erworbenen Kompetenzen (Feld verknüpft mit der Skills-Tabelle).
-
Attendees enthält Daten zu jedem Programmteilnehmer, z. B. Vor- und Nachname sowie Foto, und auch ein Verknüpfungsfeld zum verfolgten Programm, von dem aus mehrere Lookup-Felder erstellt werden, um direkt in der Attendees-Tabelle auf die Programmdaten zuzugreifen. Dies ist notwendig, da das Skript zur Dokumentengenerierung derzeit eine einzelne Tabellenauswahl erlaubt, sodass alle Daten in dieser Tabelle vorhanden sein müssen.

Bitte beachten Sie, dass das in der Vorlage benötigte Zertifikatsdatum nicht in den Daten gespeichert ist. Machen Sie sich darüber keine Sorgen – es wird beim Generieren des Dokuments mit dem heutigen Datum befüllt.
Wenn Sie unsere Basis erkunden oder damit experimentieren möchten, können Sie die DocuGenerate-Skript-Trainingsdaten einfach öffnen.
Die Datenbank Befüllen
Unsere Basis ist bereits mit Daten befüllt, um unseren Workflow zu testen. In einem echten Prozess benötigen Sie jedoch einen Mechanismus zur Datenerhebung. Eines der einfachsten Mittel hierfür ist das Erstellen von Formularen, die Benutzer selbst ausfüllen können.
Ein Formular ist im Grunde eine Webseite, die Sie öffentlich zugänglich machen, mit mehreren Eingabefeldern, die mit den Feldern Ihrer Tabelle verknüpft sind – das Ausfüllen des Formulars erstellt einen neuen Datensatz in Ihrer Tabelle. Der Prozess zum Erstellen eines Formulars für die Attendees-Tabelle ist beispielsweise sehr unkompliziert:
- Neues Formular erstellen in der Views-Seitenleiste.
- Logo und/oder Titelbild hochladen.
- Felder auswählen, die der Benutzer ausfüllen soll.
- Für jedes Feld: Pflichtfeld angeben, Titel und Beschreibung hinzufügen.
- Formular veröffentlichen, um eine öffentliche URL zum Teilen zu erhalten.

💡 Weiterführend Weitere Informationen zum Erstellen und Teilen von Formularen in Airtable finden Sie in der offiziellen Dokumentation.
Die Scripting-Erweiterung Einrichten
Nachdem unsere Vorlage und unsere Basis fertig sind, richten wir das Skript zur Dokumentengenerierung ein. Fügen Sie dazu eine Scripting-Erweiterung in einem Ihrer Dashboards hinzu. Bitte beachten Sie, dass Erweiterungen nur in bezahlten Plänen verfügbar sind.

Kopieren Sie dann diesen JavaScript-Code und fügen Sie ihn in die Scripting-Erweiterung ein:
// Click the "gear" icon in the top right to view settings
const config = input.config({
title: 'Generate Document',
description: 'Automate document generation using DocuGenerate',
items: [
input.config.text('api_key', {
label: 'API Key',
description: 'Get your unique key from the Settings page in DocuGenerate'
}),
input.config.text('template_id', {
label: 'Template ID',
description: "ID of the template to use for generating the document"
}),
input.config.table('table', {
label: 'Table',
description: 'Source table for your records'
}),
input.config.field('storage_field', {
label: 'Storage',
description: 'Field for storing the generated documents (URL or Attachment)',
parentTable: 'table',
}),
input.config.select('output_format', {
label: 'Format',
description: 'Output format of the generated documents',
options: [
{label: 'PDF (.pdf)', value: '.pdf'},
{label: 'Microsoft Word (.docx)', value: '.docx'},
{label: 'Microsoft Word 2007 (.doc)', value: '.doc'},
{label: 'OpenDocument Format (.odt)', value: '.odt'},
{label: 'Plain Text (.txt)', value: '.txt'},
{label: 'HTML (.html)', value: '.html'},
{label: 'PNG (.png)', value: '.png'}
]
})
]
});
// Prompt the user to pick a record
// If this script is run from a button field, this will use the button's record instead
let record = await input.recordAsync('Select a record to use', config.table);
if (record) {
// Customize this section to handle the selected record
// You can use record.getCellValue("Field name") to access cell values from the record
output.markdown(`Generating document for **${record.name}**`);
// Get the program name
const programsTable = base.getTable("Programs");
const programRecord = record.getCellValue("Program")[0];
const program = await programsTable.selectRecordAsync(programRecord.id);
// Construct the data object based on the selected record's values
const data = [{
"Company Name": record.getCellValue("Company_Name"),
"First Name": record.getCellValue("First_Name"),
"Last Name": record.getCellValue("Last_Name"),
"Program": program?.getCellValue("Name"),
"Start Date": record.getCellValue("Start_Date"),
"End Date": record.getCellValue("End_Date"),
"Certificate Date": record.getCellValue("End_Date")
}];
const options = {
method: 'POST',
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json',
'Authorization': config.api_key
},
body: JSON.stringify({
template_id: config.template_id,
name: `Certificate for ${record.getCellValue("First_Name")} ${record.getCellValue("Last_Name")}`,
output_format: config.output_format,
data: data
})
};
let status;
const response = await fetch('https://api.docugenerate.com/v1/document', options)
.then(response => {
status = response.status;
return response.json();
})
.catch(err => output.text(err));
if (status !== 201) {
output.markdown('Error generating document: ' + response.message);
} else {
const storageFieldValue = (config.storage_field.type === 'multipleAttachments') ? [{url: response.document_uri}] : response.document_uri;
await config.table.updateRecordsAsync([{
id: record.id,
fields: {[config.storage_field.name]: storageFieldValue}
}]);
output.markdown('Document generated successfully! 🎉');
}
} else {
output.markdown('No record was selected');
}
Wenn alles gut geht, sollten Sie jetzt auf die Einstellungsseite des Skripts zugreifen können, indem Sie auf das Zahnrad-Symbol klicken, das beim Hovern über die obere rechte Ecke Ihrer Erweiterung erscheint. Zögern Sie nicht, das Vollbild-Symbol neben dem Einstellungssymbol zu verwenden, für bessere Übersichtlichkeit.

Verfügbare Einstellungen:
-
API Key: Ihr DocuGenerate-API-Schlüssel, den Sie auf der Einstellungsseite Ihres Kontos finden. Klicken Sie einfach darauf, um den API-Schlüssel zu kopieren.
-
Template ID: Die ID Ihrer Vorlage, die Sie kopieren können von der Seite Ihrer Vorlage. Bitte beachten Sie, dass sie auch direkt in der URL der Vorlagenseite erscheint, die das Format https://app.docugenerate.com/templates/:template_id hat.
-
Table: Die Tabelle mit den Datensätzen, die für die Tag-Ersetzung der Vorlage verwendet werden.
-
Storage: Das Feld zum Speichern des generierten Dokuments. Es kann entweder ein URL-Feld (speichert einen Link zum Dokument) oder ein Dateifeld (speichert die eigentliche Datei) sein.
-
Format: Ausgabeformat des generierten Dokuments. Die Optionen sind .docx, .pdf, .doc, .odt, .txt, .html oder .png.
Mit all diesen eingestellten Parametern sind wir nun bereit, den Dokumenterstellungsprozess zu automatisieren!
Die Generieren-Schaltfläche Hinzufügen
Die Scripting-Erweiterung wartet darauf, dass der Benutzer einen bestimmten Datensatz zur Verarbeitung eingibt. Um die Bedienung für den Endbenutzer zu vereinfachen, möchten wir das Dokument durch einen einfachen Klick auf eine Schaltfläche generieren. Dafür fügen wir ein neues Schaltflächen-Feld hinzu, das so konfiguriert ist, dass es beim Klicken unser Skript ausführt. So wird der Datensatz, von dem aus die Schaltfläche geklickt wurde, automatisch für die Skriptausführung ausgewählt.

Dokumente Generieren und Speichern
Mit allem eingerichtet, sehen wir uns den Dokumentengenerierungsprozess an. Wenn Sie auf die Schaltfläche Generate bei einem Datensatz klicken, führt das Skript folgende Aktionen aus:
- Es sammelt alle notwendigen Daten aus dem aktuellen Datensatz.
- Es sendet diese Daten zusammen mit Ihrer Vorlagen-ID an die DocuGenerate-API.
- DocuGenerate verarbeitet die Anfrage und ersetzt alle Zusammenführungs-Tags durch Ihre Daten.
- Das generierte Dokument wird zurückgegeben und automatisch in Ihrer Datenbank gespeichert.
Das Ergebnis ist ein professionell aussehendes Zertifikat, das bereit für die Weitergabe an die Teilnehmer ist.

Weiterführend: Airtable-Automatisierungen
Während unser schaltflächengesteuertes Skript bereits sehr leistungsfähig ist, können Sie die Dokumentengenerierung durch die Integration mit Airtable-Automatisierungen auf die nächste Stufe heben. So sind vollständig automatische Dokument-Workflows möglich, die auf bestimmten Bedingungen in Ihrer Datenbank basieren.
Hier sind einige leistungsstarke Automatisierungsszenarien, die Sie umsetzen könnten:
-
Automatische Zertifikatgenerierung: Zertifikate automatisch generieren, wenn sich der Status eines Teilnehmers auf “Abgeschlossen” ändert oder ein Programm-Enddatum erreicht wird – ohne manuelle Klicks auf die Schaltfläche.
-
E-Mail-Versand: Zertifikate direkt an Teilnehmer per E-Mail senden, sobald sie generiert wurden, für eine nahtlose Erfahrung der Programmteilnehmer.
-
Stapelverarbeitung: Wöchentliche oder monatliche Automatisierungen einrichten, die Zertifikate für alle Teilnehmer generieren, die in diesem Zeitraum Programme abgeschlossen haben.
-
Bedingte Dokumentengenerierung: Verschiedene Dokumenttypen basierend auf Kriterien wie Programmtyp, Leistungsniveau oder geografischem Standort erstellen.
-
Benachrichtigungssystem: Programmadministratoren benachrichtigen, wenn Zertifikate generiert und zugestellt wurden, um den Prozess nachzuverfolgen.
Um diese Automatisierungen einzurichten, müssen Sie den zuvor bereitgestellten Skript-Code in einen “Run script”-Automatisierungsschritt anpassen. Die eigentliche API-Integration bleibt dieselbe, aber Sie müssen anpassen, wie Datensätze ausgewählt und verarbeitet werden, basierend auf Ihren Auslösebedingungen.
Fazit
In diesem Tutorial haben wir gezeigt, wie Sie Ihre Airtable-Datenbank mithilfe der DocuGenerate-API und Airtables Scripting-Erweiterung in ein leistungsstarkes Dokumentengenerierungssystem verwandeln können. Durch die Kombination dieser Tools können Sie professionelle Dokumente direkt aus Ihren Airtable-Daten mit einem einzigen Klick generieren und die generierten Dokumente für einfachen Zugriff und Organisation in Ihrer Datenbank speichern.
Auch wenn Automatisierungstools wie dieses Ihre Produktivität erheblich steigern können, ist es wichtig, daran zu denken, dass sie als Prozesserleichterer dienen sollen. Verlieren Sie sich nicht in komplexer Automatisierungsentwicklung, wenn ein einfacherer Ansatz effizienter sein könnte! Dieses Gleichgewicht zu erkennen ist der Schlüssel zur Schaffung wirklich effektiver Workflows. Beginnen Sie mit der bereitgestellten Basisimplementierung und erweitern Sie Ihre Automatisierung schrittweise, wenn Ihre Anforderungen wachsen und sich weiterentwickeln.
Ressourcen
- DocuGenerate-Test-Basis in Airtable mit den Tabellen Skills, Programs und Attendees.
- Airtable DocuGenerate GitHub-Repository von Benjamin Hatton, das die ursprüngliche Version der Airtable-Skripte zur Generierung von Dokumenten mit der DocuGenerate-API enthält.
- Alle Profilfotos sind lizenzfrei und stammen von Pixabay, der Plattform für lizenzfreie Bilder und Stock-Fotos.
- Die Abschlusszertifikat-Vorlage aus diesem Tutorial.
- Ein Beispiel eines aus Airtable-Daten generierten PDF-Zertifikats.